Computer networks that use the Internet protocol are commonly referred to as "IP networks." Within IP networks, host systems and other objects are identified by thirty-two bit numbers, known as Internet Protocol Addresses (IP addresses). IP addresses provide a simple mechanism for identifying the source and destination of messages sent within IP networks.
Traditionally, IP addresses that identify objects within IP networks have been assigned statically during network configuration. Using this type of assignment, routers and other network components are pre-configured to use the statically assigned bindings that correlate objects and their IP addresses. Generally, this method of address assignment has proven to be adequate, if not ideal, in networks where a limited number of objects are involved and where the IP addresses assigned to each object change infrequently.
In large or rapidly changing networks, static assignment of IP addresses is often inadequate. As a result, several methods have been developed that allow IP addresses to be dynamically learned. For example, in some IP networks, routers analyze IP packets received from client systems. The source addresses in these packets are extracted and used to update routes within the router. Unfortunately, clients systems may forge the source addresses included in IP packets. This fools the router into relearning the forged IP address. Thus, IP address learning may not be secure in environments where client systems cannot be trusted not to forge source IP addresses.
To address this problem, some routers lock addresses that have been learned. These routers refuse to relearn a route for the involved IP address until a predefined period of inactivity has passed. The locking allows a client system to continue to use an IP address without danger of the router being fooled into reassigning the IP address. The period of inactivity allows client systems to be moved to new IP addresses with the router automatically learning the new IP address of the client system.
Increasingly, IP addresses within networks are assigned by server systems using the Dynamic Host Configuration Protocol (DHCP) as is defined in Internet RFC 1541 (incorporated by reference herein). For networks that use the DHCP protocol, one or more DHCP servers listen for messages requesting IP addresses. If possible, the DHCP server then allocates an IP address for the client system sending the message. The newly allocated IP address is then included in a message sent by the DHCP server to the client system. The IP address is "leased" to the client system. Client systems that fail to periodically renew their leases may loose their allocated IP addresses.
In general, the use of DHCP servers to assign IP addresses to client systems has proven to be highly beneficial. This is especially true in networks that include a large number of client systems. Unfortunately, there is presently no secure mechanism that allows routers that learn IP addresses to learn the IP addresses that are assigned by DHCP server systems.